PrBoom+

PrBoom+ (also PrBoom-plus) is a source port based on PrBoom. GLBoom+ is a common name for a build of PrBoom+ compiled with OpenGL support. It is developed by Andrey Budko (entryway).

PrBoom+ is based on the PrBoom 2.5.x line of development. It can currently be compiled in, Windows and environments. The project saw its first developments in 2004, starting off as an unnamed PrBoom modification, but after gaining numerous additions over PrBoom it eventually adopted the separate PrBoom+ title in 2005.

Since version 2.5.1.5, PrBoom+ is released with support for the UMAPINFO standard, retaining the same name, but visually separated in version number with the letters um, referring to the initials of the standard.

The last update of active development was version 2.6.2, released on February 11, 2022. On, maintenance version was released which collects all changes committed after development discontinued. Three days later, the GitHub repository was archived.

PrBoom+ features
In addition to all PrBoom features, PrBoom+ offers:
 * Chasecam for demo playbacks
 * Changing the speed of the game in-game (for demo playback, recoding TAS demos, and for just playing at different speed)
 * Automatic loading of WADs necessary for playback, chosen by demo name or by information present in demo file (if recorded with PrBoom+)
 * Accurate Doom v1.2 emulation if needed during demo playback or requested by user
 * Support for DeePBSP and ZDBSP extended nodes
 * Support for the MUSINFO lump shared with Risen3D, ZDoom and GZDoom
 * MIDI output with OPL emulation, FluidSynth,, or
 * and playback
 * Speed optimisations for very large levels, compared to PrBoom
 * Customizable HUD with the lump
 * Video capture with the Source port parameters parameter (requires external programs)
 * Support for jumping when not recording demos
 * Optional free look (though, by default, aiming is not affected and autoaim behaves as if the line of sight remained horizontal. Free aim can be enabled when not recording demos)

OpenGL mode features
In OpenGL mode PrBoom+ offers three rendering paths: Both these are considered the main support levels. One additional rendering path is also supported: In addition to all aforementioned PrBoom+ features, in OpenGL mode PrBoom+ can also use:
 * OpenGL 2.0. The shader mode. This includes support for shaders using the.
 * OpenGL 1.2 (Will detect OpenGL 1.3 as well)
 * OpenGL 1.1. This is used as a compatibility mode in case the videocard does not support the previously mentioned render paths.
 * ZDoom-style high-resolution textures/flats/sprites (replacements located between HI_START and HI_END markers)
 * Support for PNG and DDS formats for high-res textures
 * GZDoom-style skyboxes through the GLDEFS lump (or its alias GLBDEFS)
 * Optional animation blending for animated flats and textures, similar to ZDoomGL (v1)
 * Details textures (also defined in GLDEFS lump)
 * Optional textured automap

Detail texture definition
A detail texture is defined in a GLDEFS text lump. The syntax is as follows: detail {  (walls | flats) [default_detail_name [width [height [offset_x [offset_y]]]]] {    texture_name [detail_name [width [height [offset_x [offset_y]]]]] } }

Where detail_name is a bmp/png/tga/jpg/pcx/gif lump between the HI_START/HI_END markers. You do not need to add the texture to TEXTURES1. Default values are (width:16 height:16 offset_x:0 offset_y:0)

Example:

detail {  walls smooth01 32.0 //default detail for walls (width = 32, height = 16, offset_x/y = 0) {    brick7  detstone 64.0 64 10.532 brick8 detail02 // detail02 16 16 0 0 water1 // do not apply default detail to water water2 water3 water4 }  flats // no default detail for flats {    grass1 Grass01 32 32 NUKAGE1 detslime 16 16 0 0 // different offsets for animated flats make sense NUKAGE2 detslime 16 16 4 4 NUKAGE3 detslime 16 16 8 8 } }

PrBoom+um
Version 2.5.1.5 was released as a test version by the PrBoom+ team, but was also the first official release of PrBoom+ with UMAPINFO support. Initially created by Graf Zahl, his branch was first build upon PrBoom+ 2.5.1.4, with a first release on April 22, 2017.

Since 2.5.1.5, every version since of PrBoom is of the UMAPINFO branch, with the original creator of PrBoom+, Andrey Budko (entryway) declaring it as its successor.

Prboom+rt
PrBoom+rt is a fork of PrBoom+ by sultim-t which adds ray-tracing support (shadows, dynamic lighting, bloom, etc.) The fork only has Ultimate Doom support as of 2023 but Doom II and Final Doom support is expected to be added in the future. The fork is also only compatible with and  graphics cards. The fork adds a realtime flashlight to make up for darker areas, toggled by pressing f. To install the fork, do the following steps per repository's instructions: The port has support for classic open-gl rendering. Software rendering was replaced by ray tracing in the fork. There might be some performance issues in rt mode without using DLSS or. The fork, much like its base, is no longer supported.
 * Go to the link below (under External Links), and grab version 1.0.7, which is the latest as of 2023. It hasn't been updated since April 2022, so you may expect some bugs and compatibility issues here and there. (If your going to compile it yourself, then select code > download zip unzip the file and copy windows_dependencies and compile it yourself)
 * Unzip the downloaded file and copy it to a random folder that you can name yourself.
 * Copy your genuine copy of DOOM.WAD from Steam or GOG.com.
 * (optional) Download nvngx_dlss.dll from Nvidia's GitHub repository raw and copy it to the port's folder.
 * (optional) Download sultim-t's RayTracedGL1 version 1.1.1 and unzip the file, copy the unzipped dll of the same name to the ports folder replacing an outdated version.
 * (optional) Download the Roland SC-55 boosted OGG tracks from duke4.net and copy the MUSIC folder to the port's directory.

Compatibility modes
PrBoom+ supports various compatibility settings to adjust its behavior, much like those initially implemented for MBF. In addition to individual settings for each difference in behavior, it allows the user to set compatibility levels to behave like earlier versions and modifications of the Doom engine. With the compatibility levels PrBoom+ may provide almost flawless compatibility with regular demos, as well as those recorded with Boom engines.

To change compatibility levels, the cheat code can be used ingame. The game can also be launched with the Source port parameters parameter, or with default_compatibility_level in the config file, followed by one of the following numbers:


 * If a custom wad has "BOOM compatible" in its description, use "9 - Boom v2.02".
 * If a custom wad has "MBF compatible" in its description, use "11 - MBF".

Launchers

 * PRLauncher-plus
 * PrBoom-Launcher